//
//  CJBasePopupInfo.h
//  CJUIKitDemo
//
//  Created by ciyouzen on 15/11/12.
//  Copyright (c) 2015年 dvlproad. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

///  BlankView属于哪个视图(用哪个视图的属性来保存)
typedef NS_ENUM(NSUInteger, CJBlankViewBelong) {
    CJBlankViewBelongPopupView = 0, /**< BlankView属于每个弹出框 */
    CJBlankViewBelongSuper,         /**< BlankView属于其显示在的视图 */
    CJBlankViewBelongWindow,        /**< BlankView属于Window */
};

@interface CJBasePopupInfo : NSObject {
    
}
@property (nonatomic, strong) UIView *blankView;        /**< 弹出的视图所在的父视图/空白区域视图 */
@property (nonatomic, strong) UIView *popupView;        /**< 弹出的视图 */
@property (nonatomic, assign) CGRect popupViewShowFrame;/**< 弹出视图显示时候的frame */


#pragma mark - 弹出到视图View
/*
 *  将本View以size大小弹出到showInView视图中location位置
 *
 *  @param popupSuperview               弹出视图的父视图view
 *  @param popupView                    要被添加的视图
 *  @param popupViewOrigin              弹出视图的左上角origin坐标
 *  @param popupViewSize                弹出视图的size大小
 *  @param tapBlankViewCompleteBlock    点击空白区域后的操作(要自己执行cj_hidePopupView...来隐藏，因为有时候点击背景是不执行隐藏的)
 *
 *  @return 弹窗视图信息
 */
+ (CJBasePopupInfo *)addSubviewToPopupSuperview:(nonnull UIView *)popupSuperview
                                      popupView:(UIView *)popupView
                                     withOrigin:(CGPoint)popupViewOrigin
                                           size:(CGSize)popupViewSize
                               tapBlankComplete:(void(^ _Nullable)(void))tapBlankViewCompleteBlock;
/*
 *  将当前视图弹出到视图view中央
 *
 *  @param popupSuperview               弹出视图的父视图view(可以为nil,为nil时候弹出到keyWindow上)
 *  @param popupView                    要被添加的视图
 *  @param popupViewSize                弹出视图的大小
 *  @param centerOffset                 弹窗弹出位置的中心与window中心的偏移量
 *  @param tapBlankViewCompleteBlock    点击空白区域后的操作(要自己执行cj_hidePopupView...来隐藏，因为有时候点击背景是不执行隐藏的)
 *
 *  @return 弹窗视图信息
 */
+ (CJBasePopupInfo *)addCenterSubviewToPopupSuperview:(nullable UIView *)popupSuperview
                                            popupView:(UIView *)popupView
                                             withSize:(CGSize)popupViewSize
                                         centerOffset:(CGPoint)centerOffset
                                     tapBlankComplete:(void(^ _Nullable)(void))tapBlankViewCompleteBlock;

/*
 *  将当前视图弹出到视图view底部
 *
 *  @param popupSuperview               弹出视图的父视图view(可以为nil,为nil时候弹出到keyWindow上)
 *  @param popupView                    要被添加的视图
 *  @param popupViewHeight              弹出视图的高度
 *  @param edgeInsets                   弹窗与window的(左右下)边距
 *  @param tapBlankViewCompleteBlock    点击空白区域后的操作(要自己执行cj_hidePopupView...来隐藏，因为有时候点击背景是不执行隐藏的)
 *
 *  @return 弹窗视图信息
 */
+ (CJBasePopupInfo *)addBottomSubviewToPopupSuperview:(nullable UIView *)popupSuperview
                                            popupView:(UIView *)popupView
                                           withHeight:(CGFloat)popupViewHeight
                                           edgeInsets:(UIEdgeInsets)edgeInsets
                                     tapBlankComplete:(void(^ _Nullable)(void))tapBlankViewCompleteBlock;

@end

NS_ASSUME_NONNULL_END
